Real-time transport protocol (RTP) provides end-to-end delivery services for data with real-time characteristics, such as interactive audio and video. The protocol is generally used to broadcast multimedia content through networks. RTP transfers data via RTP streams, and different types of data are generally transferred in separate streams. In a multimedia broadcast, recipients generally need to synchronize different media data from different streams.
Although an RTP packet includes in its header a sequence numbering and RTP timestamping information, this information alone is insufficient to synchronize data received from different streams. This is because generally each stream assigns random values to its initial timestamp and initial sequence number, and the timestamp's clock frequency is dependent on the format of data carried.
Some applications use the arrival time of the RTP packets to synchronize between streams. The problem with this approach is that RTP does not guarantee packet delivery, nor does it prevent out-of-order delivery. As a result, synchronization based on the arrival time cannot guarantee accuracy.
The most accurate method of synchronization requires waiting for a Real-time Transport Control Protocol (RTCP) sender report, which contains information enabling conversion between an RTP timestamp and a common timestamp among streams in the Network Time Protocol (NTP) timestamp format. These RTCP sender reports are usually sent every 5 seconds for each stream. The conversion information contained in the RTCP sender report and a timestamp in a RTP packet can be used to calculate a timestamp that can be used for synchronization of the streams. Because the recipient needs an RTCP sender report from every stream of the broadcast, such synchronization can take as long as 5 seconds when the recipient joins the broadcast. This time lag does not take into consideration the possibility of an RTCP packet loss, in which case such synchronization takes even longer time. This time lag is not acceptable in a broadcast television scenario.
Accordingly, what is needed is a method that enables fast and accurate synchronization of a newly received broadcast across different multicast streams that make up the broadcast.